/*
 * z80_instructionData.hpp
 *
 *  Created on: Jan 6, 2012
 *      Author: douglas
 */

#include <playlib/defines.hpp>

enum {	adc_r = 0, adc_n, adc_HL, adc_IXd, adc_IYd };      // ADC


struct instructionData
{
	char inst_name[16];
	u32 opcode; //this is 32 bits because some instructions can have opcode bits till byte 4.
	u32 opcode_mask;
	u8 timing;
} instrData[] =
{

      // op name       opcode         mask   timing
		{"ADC8_r",        0x88,        0xF8,       4 }, //[ADC A,s -> r]
		{"ADC8_n",        0xCE,        0xFF,       7 }, //[ADC A,s -> n]
		{"ADC8_HL",       0x8E,        0xFF,       7 }, //[ADC A,s -> (HL)]
		{"ADC8_IX_d",   0xDD8E,      0xFFFF,      19 }, //[ADC A,s -> (IX + d)]
		{"ADC8_IY_d",   0xFD8E,      0xFFFF,      19 }, //[ADC A,s -> (IY + d)]

		{"ADC16_HL_ss", 0xED4A,      0xFFCF,      15 }, //[ADC HL,ss]

		{"ADD8_HL",       0x86,        0xFF,       7 }, //[ADD A,(HL)]
		{"ADD8_IX_d",   0xDD86,      0xFFFF,      19 }, //[ADD A,(IX + d)]
		{"ADD8_IY_d",   0xFD86,      0xFFFF,      19 }, //[ADD A,(IY + d)]
		{"ADD8_n",        0xC6,        0xFF,       7 }, //[ADS A,n ]
		{"ADD8_r",        0x80,        0xF8,       4 }, //[ADD A,r]

		{"ADD16_HL_ss",    0x09,        0xCF,      11 }, //[ADD HL,ss]
		{"ADD16_IX_rr",  0xDD09,      0xFFCF,      15 }, //[ADD IX,rr]
		{"ADD16_IY_rr",  0xFD09,      0xFFCF,      15 }, //[ADD IY,rr]







};
